package com.rchat.pocmini.util;

import android.content.Context;
import android.location.LocationManager;
import android.telephony.TelephonyManager;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by 59450 on 2017/2/6.
 */

public class PhoneUtil {

    /**
     * 获取imsi号 <br>
     * IMSI:国际移动用户识别码(International Mobile SubscriberIdentification
     * Number)，是区别移动用户的标志，
     * 储存在SIM卡中，可用于区别移动用户的有效信息。其总长度不超过15位，同样使用0～9的数字。其中MCC是移动用户所
     * 属国家代号，占3位数字，中国的MCC规定为460；MNC是移动网号码，最多由两位数字组成，用于识别移动用户所归属的
     * 移动通信网；MSIN是移动用户识别码，用以识别某一移动通信网中的移动用户。
     *
     * @param context
     * @return
     */
    public static String getImsi(Context context) {
        TelephonyManager mTelephonyMgr = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        return mTelephonyMgr.getSubscriberId();
    }

    /**
     * 获取imei号 <br>
     * IMEI:国际移动设备识别码(International Mobile Equipment Identity)，是区别移动设备的标志，
     * 是由15位数字组成的"电子串号"，它与每台手机一一对应，而且该码是全世界唯一的。每一只手机在组装完
     * 成后都将被赋予一个全球唯一的一组号码，这个号码从生产到交付使用都将被制造生产的厂商所记录。
     *
     * @param context
     * @return
     */
    public static String getImei(Context context) {
        TelephonyManager mTelephonyMgr = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        return mTelephonyMgr.getDeviceId();
    }


    /**
     * 判断手机号码是否正确
     *
     * @param mobiles 手机号
     * @return 判断结果布尔值
     */
    public static boolean isMobileNO(String mobiles) {
        return Validator.isMobile(mobiles);
    }

    /**
     * 判断邮箱是否合法
     *
     * @param email 邮箱
     * @return 判断结果布尔值
     */
    public static boolean isEmail(String email) {
        if (null == email || "".equals(email)) {
            return false;
        }
        //Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}"); //简单匹配
        Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");//复杂匹配
        Matcher m = p.matcher(email);
        return m.matches();
    }


    public static boolean isGpsEnable(Context context){
        LocationManager locationManager = (LocationManager) context.getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
        // 通过GPS卫星定位，定位级别可以精确到街（通过24颗卫星定位，在室外和空旷的地方定位准确、速度快）  
        return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    }

}
